Запустить задачу сейчасpublic async Task TryRunNowWorkerAsync(
   string name,
    CancellationToken cancellationToken
    )
{
var jobKey = /* .. */;

// Проверка кол-ва сузествующих триггеров,
// если их больше определенного кол-ва,
// то нет смысла создавать еще один триггер-запуска.
   {
       var triggers = await scheduler.GetTriggersOfJob(jobKey, cancellationToken);
       if (triggers.Count > n)
        {
           return;
        }
    }
   
// Создает триггер одноразового запуска.
   await scheduler.TriggerJob(jobKey, cancellationToken);
}
При InMemory хранилище внутри используются блокировки.
Поэтому при высокой интенсивности лучше сделать отдельный поток (Task), который будут накапливать заявки и периодически запускаться.
При этом так, чтобы запись заявки была быстрой и неблокирующей.
   
   
Теги: